/**
* @author João Guilherme Cabrita Campinhos, nº 34063
* @author João Pedro Gonçalves Pereira, nº 34764
* 
* @see <code>Docente</code>: Bruno Miguel de Lemos Ribeiro Pinto Cardoso, turno P5
* @version 1.0
*/

public abstract class AbstractColaborador implements Colaborador {

	/**
	 * Variável onde guarda o <code>nome</code> do colaborador. Do tipo String.
	 */
	private String nome;
	
	/**
	 * Variável onde guarda o <code>vencimento</code> do colaborador. Do tipo double.
	 */
	private double vencimento;
	
	/**
	 * Variável onde guarda a <code>riqueza</code> gerada pelo colaborador. Do tipo double.
	 */
	private double riqueza;
	
	/**
	 * Variável onde guarda o número de <code>horas extras</code> do colaborador. Do tipo int.
	 */
	private int horasextra;
	
	/**
	 * Construtor da classe AbrastactColaborador.
	 * Além dos dois parâmetros (<code>nome</code> e <code>vencimento</code>) é também iniciado a 0 (zero) a <code>riqueza</code> gerada pelo colaborador, bem como o número de <code>horas</code> extras.
	 * @param nome - nome do colaborador
	 * @param vencimento - vencimento base
	 */
	public AbstractColaborador(String nome, double vencimento){
		this.nome = nome;
		this.vencimento = vencimento;
		riqueza = 0;
		horasextra = 0;
	}
	
	/* (non-Javadoc)
	 * @see Colaboradores#getNome()
	 */
	@Override
	public String getNome() {
		return nome;
	}

	/* (non-Javadoc)
	 * @see Colaboradores#getVencimento()
	 */
	@Override
	public double getVencimento() {
		return vencimento;
	}

	/* (non-Javadoc)
	 * @see Colaboradores#getRiqueza()
	 */
	@Override
	public double getRiqueza() {
		return riqueza;
	}

	/* (non-Javadoc)
	 * @see Colaboradores#setRiqueza()
	 */
	@Override
	public void setRiqueza(double riqueza) {
		this.riqueza += riqueza;
	}
	
	/* (non-Javadoc)
	 * @see Colaboradores#setHoras()
	 */
	@Override
	public void setHoras(double horas) {
		horasextra += horas;
	}

	/* (non-Javadoc)
	 * @see Colaboradores#getHoras()
	 */
	@Override
	public int getHoras() {
		return horasextra;
	}
}
